package com.ar.engine;

import java.io.IOException;

import android.content.Context;
import android.hardware.Camera;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Preview extends SurfaceView implements SurfaceHolder.Callback{
	
	private SurfaceHolder mHolder; 
	private Camera mCamera; 
	  
	public Preview(Context context)
	{
		super(context);
		
		// Install a SurfaceHolder.Callback so we get notified when the 
	    // underlying surface is created and destroyed. 
        mHolder = getHolder(); 
        mHolder.addCallback(this); 
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
	}

	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {
		 // Now that the size is known, set up the camera parameters and begin the preview. 
		      Camera.Parameters parameters = mCamera.getParameters(); 
		      parameters.setPreviewSize(width, height);
		      mCamera.setParameters(parameters); 
		      mCamera.startPreview(); 
    } 

	public void surfaceCreated(SurfaceHolder holder) {
		// The Surface has been created, acquire the camera and tell it where to draw. 
	      mCamera = Camera.open(); 
	      try {
			mCamera.setPreviewDisplay(holder);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	public void surfaceDestroyed(SurfaceHolder holder) {
		// Surface will be destroyed when we return, so stop the preview. 
		// Because the CameraDevice object is not a shared resource, it's very 
		// important to release it when the activity is paused. 
		mCamera.stopPreview(); 
		mCamera = null; 
		
	}

}
